﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MSBDATAModel;

public partial class KHRutTien : System.Web.UI.Page
{
    MSBDATAEntities entities = new MSBDATAEntities();
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["login"] != null)
        {
            if (!IsPostBack)
            {
                string username = Session["login"].ToString();

                DropDownListChonThe.DataValueField = "SoThe";
                DropDownListChonThe.DataTextField = "SoThe";
                DropDownListChonThe.DataSource = from t in entities.THE_THANH_TOAN
                                                 where t.TAI_KHOAN_NGAN_HANG.TAI_KHOAN_WEB.TenDangNhap == username
                                                 select t;

                DropDownListChonThe.DataBind();
            }
        }
        else
        {
            Response.Redirect("NotLogin.aspx");
        }
    }
    protected void ButtonRutTien_Click(object sender, EventArgs e)
    {
        if (Session["login"] != null)
        {
            if (this.TextBoxMaPIN.Visible == true)
            {
                if (this.TextBoxMaPIN.Text == "")
                {
                    this.LabelStatus.Text = "Vui lòng nhập mã PIN";
                    return;
                }
                else {
                    string soThe = DropDownListChonThe.SelectedValue;
                    THE_THANH_TOAN the = entities.THE_THANH_TOAN.First(t => t.SoThe == soThe);
                    if (the.SoPin != TextBoxMaPIN.Text)
                    {
                        this.LabelStatus.Text = "Mã PIN sai.";
                        return;
                    }
                }
            }
            string username = Session["login"].ToString();
            string sSoTien = TextBoxSoTien.Text + "00000";
            try
            {
                float fSoTien = float.Parse(sSoTien);
                string soThe = DropDownListChonThe.SelectedItem.Value;
                if (soThe == "-1")
                {
                    LabelStatus.Text = "Chưa chọn thẻ để để rút tiền";
                    return;
                }
                
                GIAO_DICH_KHACH_HANG giaoDich = GIAO_DICH_KHACH_HANG.CreateGIAO_DICH_KHACH_HANG(0);

                giaoDich.TAI_KHOAN_WEB = entities.TAI_KHOAN_WEB.First(t => t.TenDangNhap == username);
                // Rut tien
                giaoDich.C_LOAI_GD_KHACH_HANG = entities.C_LOAI_GD_KHACH_HANG.First(l => l.MaLoaiGD == 3);
                giaoDich.SoTien = fSoTien;
                giaoDich.ThoiGianGD = DateTime.Now;
                giaoDich.DuocDuyet = false;
                giaoDich.MaTienTe = Util.LayMaTienTeMacDinh();
                giaoDich.MaTyGia = Util.LayMaTyGiaMoiNhat(giaoDich.MaTienTe);
                giaoDich.MaTKGiaoDich = soThe;

                entities.AddToGIAO_DICH_KHACH_HANG(giaoDich);

                THE_THANH_TOAN the = entities.THE_THANH_TOAN.First(t => t.SoThe == soThe);
                the.TAI_KHOAN_NGAN_HANG.SoTien -= fSoTien;
                if (the.TAI_KHOAN_NGAN_HANG.SoTien <= 0)
                {
                    LabelStatus.Text = "Không đủ tiền.";
                    return;
                }
                if (entities.SaveChanges() > 0)
                    LabelStatus.Text = "Rút tiền thành công";
                else
                    LabelStatus.Text = "Rút tiền thất bại, vui lòng thử lại sau";

            }
            catch (Exception)
            {
                LabelStatus.Text = "Lỗi dữ liệu nhập.";
            }
        }
        else
        {
            Response.Redirect("NotLogin.aspx");
        }
    }
    protected void DropDownListChonThe_SelectedIndexChanged(object sender, EventArgs e)
    {
        try
        {
            if (DropDownListChonThe.SelectedValue != "-1")
            {
                string soThe = DropDownListChonThe.SelectedValue;
                THE_THANH_TOAN the = entities.THE_THANH_TOAN.First(t => t.SoThe == soThe);
                string soTien = entities.TAI_KHOAN_NGAN_HANG.First(t => t.SoTaiKhoan == the.MaTKNganHang).SoTien.ToString();
                string maTienTe = entities.TAI_KHOAN_NGAN_HANG.First(t => t.SoTaiKhoan == the.MaTKNganHang).C_TIEN_TE.MaTienTe ?? "";

                this.LabelSoTienCo.Text = soTien + " " + maTienTe;
                // the ATM
                if (the.C_LOAI_THE.MaLoaiThe == 1)
                {
                    this.LabelLoaiThe.Text = "Thẻ ATM";
                    this.Label1.Visible = true;
                    this.TextBoxMaPIN.Visible = true;
                }
                else
                {
                    this.LabelLoaiThe.Text = "Thẻ thanh toán trực tuyến";
                    this.Label1.Visible = false;
                    this.TextBoxMaPIN.Visible = false;
                }
            }
        }catch(Exception){}
    }
}